package Negocio;

import java.sql.Date;
import java.util.ArrayList;
import java.util.List;

import DTO.DTO_DepositoArea;
import DTO.DTO_Movimiento;
import DTO.DTO_StockInsumo;
import DTO.DTO_StockProducto;
import Entities.Entity_DepositoArea;
import Entities.Entity_Movimiento;
import Entities.Entity_StockInsumo;
import Entities.Entity_StockProducto;


public class DepositoArea extends Deposito {

	private List<StockProducto> stockProducto;
	public DepositoArea(String estado, int idDeposito, Date vencimiento,
			List<Movimiento> movimientos, List<StockInsumo> stockInsumo) {
		super(estado, idDeposito, vencimiento, movimientos, stockInsumo);
		// TODO Auto-generated constructor stub
	}
	public DepositoArea(String estado, int idDeposito, Date vencimiento,
			List<Movimiento> movimientos, List<StockInsumo> stockInsumo, List<StockProducto> stockProducto) {
		super(estado, idDeposito, vencimiento, movimientos, stockInsumo);
		this.stockProducto=stockProducto;
		// TODO Auto-generated constructor stub
	}
	public DepositoArea(DTO_DepositoArea dP) {
		super(dP);
		List<StockProducto>  stockProductos = null;
		for(DTO_StockProducto sP: dP.getStockProducto())
			stockProductos.add(new StockProducto(sP));
		this.stockProducto = stockProductos;
		// TODO Auto-generated constructor stub
	}
	


	public DepositoArea(Entity_DepositoArea depositoArea) {
		super(depositoArea);
		List<StockProducto>  stockProductos = null;
		for(Entity_StockProducto sP: depositoArea.getStockProducto())
			stockProductos.add(new StockProducto(sP));
		this.stockProducto = stockProductos;
		// TODO Auto-generated constructor stub
	}
	public List<StockProducto> getStockProducto() {
		return stockProducto;
	}

	public void setStockProducto(List<StockProducto> stockProducto) {
		this.stockProducto = stockProducto;
	}
	
	//METODO DE NEGOCIO
	public DTO_DepositoArea toDTO(){
		DTO_DepositoArea da = new DTO_DepositoArea();
		da.setEstado(this.estado);
		da.setIdDeposito(this.idDeposito);
		da.setVencimiento(this.vencimiento);
		List<DTO_StockInsumo> aux_si = new ArrayList<DTO_StockInsumo>();
		for(StockInsumo e: this.stockInsumos){
			aux_si.add(e.toDTO());
		}
		da.setStockInsumo(aux_si);
		
		List<DTO_StockProducto> aux_sp = new ArrayList<DTO_StockProducto>();
		for(StockProducto e: this.stockProducto){
			aux_sp.add(e.toDTO());
		}
		da.setStockProducto(aux_sp);
		
		List<DTO_Movimiento> aux_mov = new ArrayList<DTO_Movimiento>();
		for(Movimiento e: this.movimientos){
			aux_mov.add(e.toDTO());
		}
		da.setMovimientos(aux_mov);
		return da;
	}
	public Entity_DepositoArea toEntity() {
		Entity_DepositoArea da = new Entity_DepositoArea();
		da.setEstado(this.estado);
		da.setIdDeposito(this.idDeposito);
		da.setVencimiento(this.vencimiento);
		List<Entity_StockInsumo> aux_si = new ArrayList<Entity_StockInsumo>();
		for(StockInsumo e: this.stockInsumos){
			aux_si.add(e.toEntity());
		}
		da.setStockInsumos(aux_si);
		
		List<Entity_StockProducto> aux_sp = new ArrayList<Entity_StockProducto>();
		for(StockProducto e: this.stockProducto){
			aux_sp.add(e.toEntity());
		}
		da.setStockProducto(aux_sp);
		
		List<Entity_Movimiento> aux_mov = new ArrayList<Entity_Movimiento>();
		for(Movimiento e: this.movimientos){
			aux_mov.add(e.toEntity());
		}
		da.setMovimientos(aux_mov);
		return da;
	}
	
}
